【原理】CAM(类激活映射)模型可视化 |
您所在的位置:网站首页 › cam 可视化 › 【原理】CAM(类激活映射)模型可视化 |
前言
深度学习如火如荼,神经网络的可解释性一直是讨论的热点,其实可解释性常和模型的可视化联系在一起,模型可视化或者模型可解释说到是对某一类别具有可解释性,直接画出来特征图并不能说明模型学到了某种特征。这里主要讲一下基于类激活映射(Class Activation Mapping)的可视化。这个技术其实提出时间比较早,但是效果较好,如果希望做模型可视化,推荐大家研究一下,近期我也是用到了这个模型可视化,所以这里主要先针对原理进行简要的阐述,希望可以加深自己的认识。 可视化方法其实可视化有很多方法: 1 直接可视化:最容易被想到的一种方式就是对特征图进行可视化,想法是对的,直接对 feature map 进行粗暴的 resize,或者更为精细点的操作是进行反卷积,将 feature map 放大至和原图一样的大小,但是这样智能算是特征图的可视化,并非模型的可视化,模型的可视化要求其对分类有一定的解释性或者说依据,而且特征图可视化,由于特征图的通道数比较多且复杂,不同的特征图学习到的特征是不一样的,我们如果只对特征图进行可视化,检查的时间比较长,你要人眼遍历所有可视化的结果,所以比较麻烦。 2 反卷积(Deconvolution):能够一定程度上“看到”CNN模型中较深的卷积层所学习到的一些特征,当然,目前此技术在分割领域经常用到,利用反卷积进行可视化,其实重要的部分是最大池化,池化操作通过成倍的缩小feature maps的尺寸(高、宽),使得一个特征可覆盖的原图的范围(感受野Receptive Field)成倍的增大,这样高层的特征可以更快地表征图片的宏观信息。而将卷积操作的步幅(stride)设置为大于1的值,理论上可以获得与池化操作相同的效果,但是在反卷积可视化时,需要用到最大池化的索引,由于不同图片的池化索引各不相同,这样,即使是相同位置的特征通过反卷积网络后,可视化结果也完全不同(池化索引相当于给了不同图片独特的身份标识)。如果去掉池化层,图片的身份标识没有了,自然无法生成与原图对应的可视化结构。 3导向反向传播(Guided-backpropagation):这个主要是解决网络中没有池化层的可视化,就是通过反向传播,计算该特征值相对于该输入图片的梯度。反向传播和反卷积最大的不同,就是数值通过通过ReLU时计算方式的不同。而导向反向传播可视化方法,是两者的结合。导向反向传播(Guided-Backpropagation)相当于对普通的反向传播加了指导,限制了小于0的梯度的回传,而梯度小于0的部分对应了原图中 削弱了我们想要可视化的特征 的部分,这些部分正是我们不想要的。还记得我们的目标吗,找出最大化激活某个特征的图片部分。 下图是在解释三者的不同: 对一个深层的卷积神经网络而言,通过多次卷积和池化以后,它的最后一层卷积层包含了最丰富的空间和语义信息,再往下就是全连接层和softmax层了,其中所包含的信息都是人类难以理解的,很难以可视化的方式展示出来。所以说,要让卷积神经网络的对其分类结果给出一个合理解释,必须要充分利用好最后一个卷积层。 CAM的解释效果已经很不错了,但是它有一个致使伤,就是它要求修改原模型的结构,导致需要重新训练该模型,这大大限制了它的使用场景。如果模型已经上线了,或着训练的成本非常高,我们几乎是不可能为了它重新训练的。于是乎,Grad-CAM横空出世,解决了这个问题。 Grad-CAM使用流入CNN最后一层卷积层的梯度信息来理解每个神经元对于目标决定的重要性。 GradCAM++ vs GradCAM 优点 1 定位更准确 2 更适合同类多目标的情况 【1】Learning Deep Features for Discriminative Localization 【2】Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization 【3】Grad-CAM++: Generalized Gradient-based Visual Explanations for Deep Convolutional Networks 参考【1】点击 【2】【论文翻译】Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization ICCV 2017 【3】2019-09-03 Grad-CAM++ 原理及实现 【4】专栏 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |